
        <html>
			<head>
			     <title>Cobalt Strike 之团队服务器的搭建与DNS通讯演示 - luom</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tools/1475">http://drops.wooyun.org/tools/1475</a></h1>
				
      <p>
        <h2>0x00 背景</h2>

<hr />

<p>Cobalt Strike 一款以metasploit为基础的GUI的框框架式渗透工具，Armitage的商业版，集成了端口发、服务扫描，自动化溢出，多模式端口监听，win exe木马生成，win dll木马生成，java木马生成，office宏病毒生成，木马捆绑，mac os 木马生成，钓鱼攻击包括：站点克隆，目标信息获取，java执行，游览器自动攻击等等。</p>

<p>Cobalt Strike 官网为 <a href="http://www.advancedpentest.com">Cobalt Strike</a> 程序只不接受大天朝的下载，各位自行想办法。<a href="http://blog.strategiccyber.com">作者博客</a> 有很多好东西，推荐大家收藏。</p>

<p>Cobalt Strike 在1.45和以前是可以连接本机windows的metasploit的，在后来就不被支持了，必须要求连接远程linux的metasploit。</p>

<p>Cobalt Strike 还有个强大的功能就是他的团体服务器功能，它能让多个攻击者同时连接到团体服务器上，共享攻击资源与目标信息和sessions。</p>

<p>这篇文章就给大家分享下我大家团体服务器的方法（我的不一定是最好的，参考下就行了）</p>

<!--more-->

<h2>0x01 搭建</h2>

<hr />

<h3>1.服务器</h3>

<p>服务器强烈建议大家选择ubuntu的，内存1G以上，带宽8M以上，虽然在Centos上也帮朋友成功搭建过，但是很不推荐，稳定性和维护性都没有用ubuntu好。</p>

<h3>2.安装metasploit</h3>

<p>metasploit有3个版本 专业版，社区版，和git上面的版本，当然大家用社区版就行了，专业版的功能比起社区版要多，但是要给钱，只能免费使用一段时间，以前找到的无限免费使用专业版也被官方封锁了，git上的版本适合高级安装的用户，具体可以自己去玩玩。</p>

<p>下载安装好社区版的metasploit后接下来就是要激活第一次访问metasploit的web管理页面必须是localhost，这好似规定死的，我这里有两种方法1.给服务器开启VNC，然后上去激活（不推荐）2.连接ssh的时候开启socks5然后游览器设置下就可以访问了。</p>

<p>还有一中快捷的安装方式就是上传Cobalt Strike搭服务器，在里面有个quick-msf-setup 的脚本，它可以帮你快熟部署团体服务器环境，不过我不喜欢这种方式，我比较喜欢折腾，嘿嘿。</p>

<h3>3.部署Cobalt Strike</h3>

<p>将下载好的Cobalt Strike上传到服务器，解包后会有这些文件</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364042830.jpeg" alt="enter image description here" /></p>

<p>Cobalt Strike是JAVA写的，服务器还得有JAVA环境，这里我们没必要去下载JAVA来安装，metasploit已经有了JAVA环境，我们只需要配置下环境变量就行了
打开root目录下的.bashrc文件，建议先备份，在最下面添加：</p>

<pre><code>#JAVA     
export JAVA_HOME=/opt/metasploit/java
</code></pre>

<p>     export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH</p>

<p>然后在执行</p>

<pre><code>#!bash
source .bashrc
</code></pre>

<p>最后看看是否成功</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364094960.jpg" alt="enter image description here" /></p>

<p>回到Cobalt Strike目录</p>

<p>执行./teamserver 服务器IP 连接密码</p>

<p><img src="http://static.wooyun.org/20140714/2014071407073972826.jpeg" alt="enter image description here" /></p>

<p>启动的过程中会有很多警告，不用理会它，大概几分钟后出现这个就OK了</p>

<p><img src="http://static.wooyun.org/20140714/2014071409543747990.jpeg" alt="enter image description here" /></p>

<p>这里不要关闭，然后本机启动Cobalt Strike 连接测试</p>

<pre><code>地址是:192.168.10.62
端口是:55553
用户名是:msf
密码是:luom  (也就是我们刚才设置的)
</code></pre>

<p><img src="http://static.wooyun.org/20140714/2014071403171425967.jpeg" alt="enter image description here" /></p>

<p>点击连接，会弹出一个服务器认证，确认，然后弹出设置你昵称（Cobalt Strike是可以在线聊天的）</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171517005.jpeg" alt="enter image description here" /></p>

<p>回到SSH 你可以看到各种日志，但是这个一关闭团队服务器也就关闭了，这里我们可以把他置于后台来运行</p>

<pre><code>#!bash
nohup ./teamserver 192.168.10.62 luom &amp;
</code></pre>

<p>这样就可以了，这个目录下会生成一个nohup.out的文件，这个是程序运行的日志文件
注：
在启动Cobalt Strike的时候报错 如下</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171543567.jpeg" alt="enter image description here" /></p>

<p>这个原因是你的内存使用超过%50 无法启动java虚拟机。</p>

<p>在结束Cobalt Strike的时候也要同时结束所有 msfrpcd 进程，不要下次启动会启动不了的。</p>

<h2>0x02 实例之Cobalt Strike通过DNS控制目标</h2>

<hr />

<p>通过DNS来控制目标和渗透好处不多说把，大家都知道，不开端口，能绕过大部分防火墙，隐蔽性好等等。Cobalt Strike有个beacons的功能，它可以通过DNS,HTTP,SMB来传输数据，下面我以DNS为例演示下。</p>

<h3>1. 域名设置</h3>

<p>首先我们的有个域名，并且创建一条A记录指向我们的metasploit服务器，记住不要用CDN什么的</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171511552.jpg" alt="enter image description here" /></p>

<p>然后再创建2个或3个ns记录指向刚才创建的A记录</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171655778.jpg" alt="enter image description here" /></p>

<p>这样我们就可以通过dns找到我们的metasploit服务器了</p>

<h3>2. Cobalt Strike设置</h3>

<p>在Cobalt Strike中我们添加一个listener</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364087820.jpg" alt="enter image description here" /></p>

<p>HOST填写的是metasplit服务的IP，在点击Save的时候会要求填写你的NS记录，这里写入我们刚才创建的3个</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364062053.jpg" alt="enter image description here" /></p>

<p>监听我们设置好了，接下来创建一个木马测试下。</p>

<h3>3. 木马生成</h3>

<p>在<code>attack-&gt;packages</code>中找到windows木马生成</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171643660.jpg" alt="enter image description here" /></p>

<p>Listener选择我们刚才创建的(有两个，选择有DNS的那个)，输出的有exe，带服务的EXE，dll等。（我测试过连接方式以DNS生成的DLL木马能过掉很大一部分杀毒软件）</p>

<p>我们把生成的DNS.EXE放到虚拟机中运行。</p>

<p>运行前的端口情况</p>

<p><img src="http://static.wooyun.org/20140714/2014071407074063721.jpg" alt="enter image description here" /></p>

<p>运行后的端口情况</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364161269.jpg" alt="enter image description here" /></p>

<p>没有开新的端口，在来抓包看看</p>

<p><img src="http://static.wooyun.org/20140714/2014071403171770909.jpg" alt="enter image description here" /></p>

<p>走的是DNS。</p>

<p>回到Cobalt Strike打开beacons管理器发现有一个服务端响应了我们</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364171879.jpg" alt="enter image description here" /></p>

<p>右键是管理菜单，选择sleep设置相应的时间，然后选择interact来到操作界面</p>

<p><img src="http://static.wooyun.org/20140714/2014071407074058251.jpg" alt="enter image description here" /></p>

<p>首先来设置的是传输的模式，有dns、dns-txt，http,smb四种，我们这里用的是DNS就在dns、dns-txt中选择把，前者传送的数据小后者传送的数据多
这里我设置为 <code>mode dns-txt</code>（这里可以用TAB补齐命令的）</p>

<p><img src="http://static.wooyun.org/20140714/2014071404364266423.jpg" alt="enter image description here" /></p>

<p>键入help可以看到支持的命令</p>

<pre><code>    Command                   Description
    -------                   -----------
    bypassuac                 Spawn a session in a high integrity process
    cd                        Change directory
    checkin                   Call home and post data
    clear                     Clear beacon queue
    download                  Download a file
    execute                   Execute a program on target
    exit                      Terminate the beacon session
    getsystem                 Attempt to get SYSTEM
    getuid                    Get User ID
    help                      Help menu
    inject                    Spawn a session in a specific process
    keylogger start           Start the keystroke logger
    keylogger stop            Stop the keystroke logger
    message                   Display a message to user on desktop
    meterpreter               Spawn a Meterpreter session
    link                      Connect to a Beacon peer over SMB
    mode dns                  Use DNS A as data channel (DNS beacon only)
    mode dns-txt              Use DNS TXT as data channel (DNS beacon only)
    mode http                 Use HTTP as data channel
    mode smb                  Use SMB peer-to-peer communication
    rev2self                  Revert to original token
    shell                     Execute a command via cmd.exe
    sleep                     Set beacon sleep time
    socks                     Start SOCKS4a server to relay traffic
    socks stop                Stop SOCKS4a server
    spawn                     Spawn a session 
    spawnto                   Set executable to spawn processes into
    steal_token               Steal access token from a process
    task                      Download and execute a file from a URL
    timestomp                 Apply timestamps from one file to another
    unlink                    Disconnect from parent Beacon
upload                    Upload a file
</code></pre>

<p>这里就演示几个常用的命令把</p>

<pre><code>Getuid  获取当前用户
</code></pre>

<p><img src="http://static.wooyun.org/20140714/2014071403171784244.jpg" alt="enter image description here" /></p>

<p>Execute  运行可执行程序（不能执行shell命令）</p>

<pre><code>Shell  执行shell命令
</code></pre>

<p><img src="http://static.wooyun.org/20140714/2014071404364266053.jpg" alt="enter image description here" /></p>

<pre><code>Meterpreter  返回一个meterpreter会话
</code></pre>

<p>剩下的命令就等大家自己去看吧。</p>

<p>这东西好处在于比较对控制目标主机比较隐蔽，缺点在每次的命令我返回结果比较慢，在过防火墙方面还是不错的。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          